package org.middleware.dao.system;

import org.middleware.entity.system.SysUsers;
import org.middleware.mapper.system.SysUsersMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户dao层
 */
@Repository
public class SysUsersDao {
    @Autowired
    private SysUsersMapper usersMapper;

    /**
     * 根据用户名查询用户信息
     *
     * @param username 用户名
     * @return 用户对象
     */
    public SysUsers getUserByName(String username) {
        return usersMapper.selectUsersByName(username);
    }

    /**
     * 用户注册
     *
     * @param username
     * @param password
     * @return
     */
    public int register(String username, String password) {
        return usersMapper.register(username, password);
    }

    /**
     * 根据用户id查询用户信息
     *
     * @param id 用户id
     * @return 用户对象
     */
    public SysUsers getUserById(int id) {
        return usersMapper.selectUsersById(id);
    }

    /**
     * 新增用户
     * @param user 用户信息
     * @return
     */
    public int addUser(SysUsers user) {
        return usersMapper.addUser(user);
    }

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 更新的记录数
     */
    public int updateUserInfo(SysUsers user) {
        return usersMapper.updateUserInfo(user);
    }

    /**
     * 根据企业和部门id查询用户
     * @param enterpriseId 企业id
     * @param departmentId 部门id
     * @return 用户列表
     */
    public List<SysUsers> getByEnterpriseAndDepartment(int enterpriseId, int departmentId) {
        return usersMapper.queryByEnterpriseAndDepartment(enterpriseId, departmentId);
    }

    /**
     * 查询过给部门下的用户数量
     * @param list 部门id的列表
     * @return 用户数
     */
    public int countUsersByDepartmentList(List<Integer> list) {
        return usersMapper.countUsersByDepartmentList(list);
    }

}
